#include<stdio.h>
#include<stdlib.h>

#define I1 (length1-1-i)
#define I2 (length2-1-i)

int length(char *str){
	int result = 0;
	while(str[result] != '\0')
		result++;
	return result;
}

int compare(char *str1, char *str2){
	int i = 0;
	short flag = 0;
	short flagged = 0;
	int length1 = length(str1), length2 = length(str2);
	if(length1 > length2)
		return 1;
	if(length1 < length2)
		return -1;
	while(I1 > 0){
		if(str1[I1] > str2[I2])
			return 1;
		else if(str1[I1] < str2[I2])
			return -1;
		i++;
	}
	return 0;
}

char * add(char *str1, char *str2){
	if(compare(str1, str2) == -1)
		return add(str2, str1);
	int length1 = length(str1);
	int length2 = length(str2);
	char *result = (char*)calloc(sizeof(char), length1+2);
	int sum;
	for(int i = 0; I1 >= 0; i++){
		sum = str1[I1] - '0';
		if(I2 >= 0)
			sum += str2[I2] - '0';
		result[I1+1] += sum%10 + '0';
		result[I1] += sum/10;
	}
	result[0] += '0';
	return result;
}

char * sub(char *str1, char *str2){
	int length1 = length(str1);
	int length2 = length(str2);
	char *result = (char*)calloc(sizeof(char), length1+1);
	int dif;
	for(int i = 0; I1 >= 0; i++){
		dif = str1[I1] - '0' + 10;
		if(I2 >= 0)
			dif -= str2[I2] - '0';
		result[I1] += dif%10 + '0';
		if(I1-1 >= 0)
			result[I1-1] -= dif/10?0:1;
	}
	return result;
}


int main(){
	char *str1;
	char *str2;
	scanf("%ms %ms", &str1, &str2);
	if(str1[0] != '-' && str2[0] != '-')
		printf("%s", add(str1, str2));
	else if(str1[0] == '-' && str2[0] == '-')
		printf("-%s", add(str1+1, str2+1));
	else{
		if(str1[0] == '-'){
			char *temp = str2;
			str2 = str1;
			str1 = temp;
		}
		short cmp = compare(str1, str2+1);
		switch(compare(str1, str2+1)){
			case 0:
				putchar('0');
				return 0;
			case 1:
				printf("%s", sub(str1, str2+1));
				return 0;
			case -1:
				printf("-%s", sub(str2+1, str1));
				return 0;
		}
	}
}
